Overview

This project studies the association between surgical utilization and presidential election results at the United States county-level in 2012 and 2016. The data sources that I’ll be using for the project are the Dartmouth Atlas website, MIT’s Election Lab website, the USDA Economic Research Service’s Atlas of Rural and Small-Town America website, the County Health Rankings and Roadmaps website, and the Bureau of Economic Analysis. Dr. Rachel Kelz (Surgeon), Dr. Mark Neuman (Anesthesiologist), and Dr. Luke Keele (Statistician/Political Scientist), all from the University of Pennsylvania, contributed significant methodological guidance & help with the development of this project, for which I’m very grateful. The GitHub repository can be found here.

Introduction

As of 2014, over 10 million inpatient surgical procedures are performed each year in the United States,1 accounting for 29% of all inpatient admissions and 49% of hospital revenue.2 While there is evidence to suggest that surgical outcomes have improved over time,3 the decision to operate, when other alternative treatment options may exist, remains an understudied concept and likely has an enormous impact on healthcare costs and outcomes. Although there are certainly occasions when surgery is the only reasonable treatment option available, significant variation in surgical decision-making and utilization exists across the United States,4–6 suggesting that operative treatment decisions may be influenced by factors beyond unquestionable medical necessity. These factors may include surgeon experience, training, geographic/socioeconomic indicators, regional supply of surgeons, diffusion of technology, and perhaps other less observable characteristics such as surgeons’ personal preferences and beliefs.6,7 Recent research suggests that physician specialties may, in fact, be associated with political party affiliation,8 with surgeons more likely to vote Republican. In medical situations where multiple treatment options exist, surgical intervention is often considered a more “aggressive” approach. Furthermore, conservatism has been linked with more aggressive approaches to decision-making.9 While party affiliation & specialty trends may continue to change as more women (who, per the Sanger-Katz article, more often vote Democratic) enter the surgical workforce, this nonetheless offers the opportunity to study historical trends in surgical decision-making and utilization in the context of politics. Therefore, the objective of this study is to determine if rates of surgical utilization at the county level demonstrate an association with presidential election results from 2012 and 2016.

This project combines methods, theory, and input from the fields of health services research, surgery, and political science. At a time when both health care and political beliefs in the United States are fraught with divisiveness, a given patient faced with the decision of whether or not to undergo a surgical procedure might assume (or at least hope) that their providers’ recommendations for medical treatment will be based solely on the best-available treatment knowledge and guidelines, regardless of location or provider. While this project won’t seek to be definitive in studying the impact of physician beliefs on patient care, the results of this project may help shed some further light on potential factors associated with variations observed in surgical utilization across the United States.

Methods

Data Sources

The primary datasets used in this project are the longitudinal files for surgical discharges offered by the Dartmouth Atlas website, containing county-level information on the number of surgical discharges per 1,000 Medicare enrollees in a given year, and the MIT Election Lab datasets offering county-level Presidential election results from 2000-2016. Subset analyses were performed for back surgeries and coronary artery bypass graft (CABG) surgeries given their hypothetical levels of aggression: back surgeries being a potentially more aggressive treatment option while CABG, although severe, being a more regulated, less variant treatment option. These data are augmented by other county-level factors that have either been used in prior literature or suggested by my project advisors for inclusion in the multivariable linear regression models. Before loading the data, first I loaded all the packages necessary to run the commands in this Markdown file:

library(rbbt)
library(tidyverse)
library(usmap)
library(ggplot2)
library(reshape2)
library(dplyr)
library(stringr)
library(modelsummary)
library(jtools)
library(tidyr)
library(doBy)
library(RColorBrewer)
library(cowplot)
library(sjPlot)
library(sjmisc)
library(sjlabelled)
library(gtsummary)
library(table1)
library(gt)
library(ggpubr)
theme_gtsummary_compact(set_theme = TRUE)

Next, I downloaded and stored the CSV files used for my analyses. Below are links & instructions to download the data, along with the corresponding R code to import the data after all files have been downloaded to the working directory:

  • Longitudinal surgical discharge data from Dartmouth Atlas: Download and unzip
  • MIT Election Lab: Download in CSV format
  • County Health Rankings from 2012: Download
  • County Health Rankings from 2016: Download
  • Rural Atlas data for income measures: Download and use income.csv within the zip file
  • GDP growth by county download instructions:
    1. Navigate to https://apps.bea.gov/itable/iTable.cfm?ReqID=70&step=1
    2. Click GROSS DOMESTIC PRODUCT (GDP) BY COUNTY & METROPOLITAN AREA
    3. Click CAGDP1
    4. Select County, then Next Step
    5. Select All Counties in the U.S., then Next Step
    6. For ‘Statistic’ select “Real GDP” and for ‘Unit of Measure’ select “Percent change from preceding period”, then Next Step
      NOTE: Percent change is used as a measure of growth for each county as opposed to a hard GDP value
      NOTE: Real GDP is used instead of current dollar because current dollar values may change depending on when the data is downloaded
    7. Multi-select 2012 and 2016 (using CTRL or CMD), then Next Step
    8. Select Download CSV
    9. Rename downloaded file to gdp_bea_county_12_16.csv
# Set working directory and store all downloaded data locally for importing
setwd("/Users/chris/Documents/MBMI/BMIN 503/BMIN503_Final_Project/")

# Dartmouth data takes a while to load so this code prevents loading again if it already exists
if(exists("dartmouth") == FALSE) {
  dartmouth<-read.csv("county_medutil_6599ffs.csv", header=TRUE)
}
election<-read.csv("countypres_2000-2016.csv", header=TRUE)
cty_rank_2012<-read.csv("analytic_data2012.csv", header=TRUE, skip=1, sep=",")
cty_rank_2016<-read.csv("analytic_data2016.csv", header=TRUE, skip=1, sep=",")
rural_atlas_income<-read.csv("income.csv", header=TRUE)
gdp<-read.csv("gdp_bea_county_12_16.csv", header=TRUE, skip=4)

Variables

After importing the raw CSV files, each dataset was cleaned and prepped for linkage. The final analytical cohort contains two records per county (i.e., FIPS code), one for 2012 and another for 2016. Due to a lack of 2016 surgical data available on the Dartmouth Atlas website, the surgical discharge data was lagged by one year (i.e., surgical discharges from 2011 were linked to election results from 2012, and similarly 2015 surgical discharges linked to 2016 election). Therefore, the surgical discharges represent surgical utilization in the year prior to each Presidential election. Normality of confounding variables was checked and log-transformed, as necessary. The variables used from each data source are listed below, followed by the R code used to clean the datasets:

Dartmouth Atlas (Key independent variables of interest)
* AS_DIS: Adjusted Rate of Surgical Discharges per 1,000 Medicare Enrollees
* BS_DIS: Adjusted Rate of Back Surgery Discharges per 1,000 Medicare Enrollees
* CB_DIS: Adjusted Rate of Coronary Artery Bypass Graft (CABG) Surgery Discharges per 1,000 Medicare Enrollees

MIT Election Lab
* % of Republican vote shares (third parties removed) for the 2012 & 2016 Presidential Election (Outcome)
* Prior Vote Share: % Republican vote share from the most recent prior Presidential election (Confounder/adjustment variable)

County Rankings (Confounder/adjustment variables)
* % Fair/Poor Health
* % High School Graduates
* % Unemployed
* % Non-Hispanic Black
* % Rural
* % Uninsured
* Total Population
* Median Income

Rural Atlas (Confounder/adjustment variable)
* % Poverty

Bureau of Economic Analysis (Confounder/adjustment variable)
* % change in GDP from prior year

# ***** Generate "clean" versions of raw CSV datasets to include only records relevant to this analysis *****

# DARTMOUTH ATLAS
# Negative values indicate low-precision values due to sample size -- all values are converted to absolute values but the
# negative rows are flagged accordingly for filtering & testing later
# Make FIPS variable a 5-digit string for linking
# Replace all 999999 values with NA
surg_dis<-dartmouth %>%
  filter(Eventname %in% c("AS_DIS", "BS_DIS", "CB_DIS"), Year %in% c(2011,2015), Race=="Overall", Gender=="All") %>%
  dplyr::select(Geo_Code, Eventname, Adjusted_Rate, Year) %>%
  spread(Eventname, Adjusted_Rate) %>%
  rename(fips=Geo_Code,
         adj_surg_rate=AS_DIS,
         adj_back_surg_rate=BS_DIS,
         adj_cabg_surg_rate=CB_DIS,
         surg_year=Year) %>%
  mutate(surg_neg=ifelse(adj_surg_rate<0,1,0),
         back_neg=ifelse(adj_back_surg_rate<0,1,0),
         cabg_neg=ifelse(adj_cabg_surg_rate<0,1,0)) %>%
  mutate(fips=str_pad(fips, 5, pad = "0"),
         adj_surg_rate=round(abs(adj_surg_rate),digits=1),
         adj_back_surg_rate=round(abs(adj_back_surg_rate),digits=1),
         adj_cabg_surg_rate=round(abs(adj_cabg_surg_rate),digits=1),
         merge_year=ifelse(surg_year==2011,2012,2016)) %>%
  mutate_at(vars(adj_surg_rate, adj_back_surg_rate, adj_cabg_surg_rate), ~ replace(., . == 99999, NA)) %>%
  filter(adj_surg_rate>=0)


# ELECTION
# Pull 2008, 2012, and 2016 Presidential Election data and generate Republican percent (r_pct) values for each year
# Make FIPS variable a 5-digit string for linking
elect_tmp<-election %>%
  filter(year %in% c(2008,2012,2016),
         party %in% c("republican","democrat"),
         !is.na(FIPS),
         !is.na(candidatevotes)) %>%
  select(FIPS, party, candidatevotes, year) %>%
  rename(fips=FIPS) %>%
  spread(party, candidatevotes) %>%
  mutate(fips=str_pad(fips, 5, pad = "0"),
         r_pct=republican/(republican+democrat)) %>%
  select(fips,year,r_pct)

# 2008 election data is used as "prior vote share" for 2012 election
elect_2012<-elect_tmp %>%
  filter(year %in% c(2008,2012)) %>%
  spread(year, r_pct) %>%
  rename(past_vote_share="2008",
         r_pct="2012") %>%
  mutate(elect_year=2012,
         merge_year=2012,
         past_vote_share=round(past_vote_share*100,digits=1),
         r_pct=round(r_pct*100,digits=1))

# 2012 election data is used as "prior vote share" for 2016 election
elect_2016<-elect_tmp %>%
  filter(year %in% c(2012,2016)) %>%
  spread(year, r_pct) %>%
  rename(past_vote_share="2012", r_pct="2016") %>%
  mutate(elect_year=2016,
         merge_year=2016,
         past_vote_share=round(past_vote_share*100,digits=1),
         r_pct=round(r_pct*100,digits=1))

# Append 2012 & 2016 election data into single dataset with their respective prior vote shares intact
elect_final<-rbind(elect_2012,elect_2016)

# COUNTY RANKINGS
# Append data from County Rankings from 2012 & 2016
cty_rank_all<-dplyr::bind_rows(cty_rank_2012, cty_rank_2016)

# Rename & multiply rates by 100 for more intuitive analysis
# Make FIPS variable a 5-digit string for linking
cty_rank_all_clean<-cty_rank_all %>%
  mutate(fipscode=as.character(fipscode),
         fips=str_pad(fipscode, 5, pad = "0"),
         v002_rawvalue=v002_rawvalue*100,
         v021_rawvalue=v021_rawvalue*100,
         v023_rawvalue=v023_rawvalue*100,
         v054_rawvalue=v054_rawvalue*100,
         v058_rawvalue=v058_rawvalue*100,
         v085_rawvalue=v085_rawvalue*100,
         v051_rawvalue=round(v051_rawvalue,digits=0),
         v063_rawvalue=round(v063_rawvalue,digits=0),
         cty_year=year) %>%
  rename(pct_fairpoor=v002_rawvalue,
         pct_hsgrad=v021_rawvalue, 
         pct_unemp=v023_rawvalue,
         pct_nhblack=v054_rawvalue,
         pct_rural=v058_rawvalue,
         pct_uninsured=v085_rawvalue,
         tot_pop=v051_rawvalue,
         med_income=v063_rawvalue,
         merge_year=year) %>%
  dplyr::select(fips, pct_fairpoor, pct_hsgrad, pct_unemp, pct_nhblack, pct_rural, pct_uninsured, tot_pop, med_income,
                cty_year, merge_year)

# RURAL ATLAS
# Make FIPS variable a 5-digit string for linking
rural_atlas_income_clean<-rural_atlas_income %>%
  mutate(fips=str_pad(FIPS, 5, pad = "0")) %>%
  dplyr::select(fips, PovertyAllAgesPct)

# BUREAU OF ECONOMIC ANALYSIS
# Make FIPS variable a 5-digit string for linking
# Remove all missing values
gdp_clean<-gdp %>%
  rename(fips=GeoFips,y2012=X2011.2012, y2016=X2015.2016) %>%
  gather(year, pct_gdp_chg, y2012:y2016, factor_key=TRUE) %>%
  mutate(merge_year=ifelse(year=="y2012",2012,2016),
         pct_gdp_chg=as.numeric(pct_gdp_chg)) %>%
  dplyr::select(fips,merge_year,pct_gdp_chg) %>%
  filter(!is.na(pct_gdp_chg))


# MERGE INTO ANALYTICAL COHORT USING SURGICAL DISCHARGES AS PRIMARY DATASET
analytical_cohort<-surg_dis %>%
  left_join(elect_final) %>%
  left_join(cty_rank_all_clean) %>%
  left_join(rural_atlas_income_clean) %>%
  left_join(gdp_clean) %>%
  filter(!is.na(r_pct))

To assess normality of the confounding variables, I generated yearly histograms for each one and transformed as necessary.

analytical_cohort_hist<-analytical_cohort %>% select("merge_year","pct_gdp_chg","pct_fairpoor","pct_hsgrad","pct_unemp","pct_nhblack","pct_rural","pct_uninsured","tot_pop","med_income","PovertyAllAgesPct")

colNames <- names(analytical_cohort_hist[-1])
for(i in colNames){
    plot<-ggplot(data=analytical_cohort, aes_string(x=i)) +
    geom_histogram(bins=20, aes(y=..density..), colour="black", fill="white") +
    geom_density(alpha=.3, fill="lightgreen") +
    facet_grid(~merge_year)
    print(plot)
}
## Warning: Removed 103 rows containing non-finite values (stat_bin).
## Warning: Removed 103 rows containing non-finite values (stat_density).

## Warning: Removed 382 rows containing non-finite values (stat_bin).
## Warning: Removed 382 rows containing non-finite values (stat_density).

## Warning: Removed 467 rows containing non-finite values (stat_bin).
## Warning: Removed 467 rows containing non-finite values (stat_density).

## Warning: Removed 1 rows containing non-finite values (stat_bin).
## Warning: Removed 1 rows containing non-finite values (stat_density).

## Warning: Removed 3 rows containing non-finite values (stat_bin).
## Warning: Removed 3 rows containing non-finite values (stat_density).

Visually it looks like % Change in GDP, % H.S Grads, % Non-Hispanic Black, % Rural, Total Population, and Median Income are the biggest offenders. So

# Perform log transformation for selected variables
# Note that % GDP Change contains negative values so I added a constant of 56 to each value (-56 is the largest negative value) to bring it to all positives
analytical_cohort<-analytical_cohort %>%
    mutate(merge_year=as.factor(merge_year), log_gdp=log(pct_gdp_chg+56), log_hsgrad=log(pct_hsgrad), log_nhblack=log(pct_nhblack), log_rural=log(pct_rural), log_pop=log(tot_pop), log_med_inc=log(med_income))

colNames2 <- names(analytical_cohort[24:29])
for(i in colNames2){
    plot<-ggplot(data=analytical_cohort, aes_string(x=i)) +
    geom_histogram(bins=20, aes(y=..density..), colour="black", fill="white") +
    geom_density(alpha=.3, fill="lightgreen") +
    facet_grid(~merge_year)
    print(plot)
}
## Warning: Removed 103 rows containing non-finite values (stat_bin).
## Warning: Removed 103 rows containing non-finite values (stat_density).

## Warning: Removed 467 rows containing non-finite values (stat_bin).
## Warning: Removed 467 rows containing non-finite values (stat_density).

## Warning: Removed 53 rows containing non-finite values (stat_bin).
## Warning: Removed 53 rows containing non-finite values (stat_density).

## Warning: Removed 62 rows containing non-finite values (stat_bin).
## Warning: Removed 62 rows containing non-finite values (stat_density).

The distributions for Total Population and Median Income look better after log transformation so they were used in the statistical modeling.

Statistical Analysis

Multivariable linear regression was conducted using the following formula:

\[\Large RPct_{ij}=f(SU_{i,j-1},\ PVS_{j-4},\ GDP_{ij},\ Pov_i,\ CR_{ij},\ \eta_j,\ FIPS_{i})\]

where \(RPct_{ij}\) represents the Republican voting share (expressed as a proportion) in county \(i\) and year \(j\), \(SU_{i,j-1}\) refers to the surgical utilization rate in the year prior to the election, \(PVS_{j-4}\) represents a county’s past voting share from the prior presidential election, \(GDP_{ij}\) represents a measure of economic growth, \(USDA_i\) is the % Poverty, \(CR_{i,j}\) are the Country Rankings predictors for the year of the election, \(\eta_j\) is a binary indicator for year, and \(FIPS_i\) represents the fixed effect for each FIPS county . The analysis will be repeated for the other surgical utilization variables.

Results

Results are below but need to flesh out with text.

surg_dis_2012 <- surg_dis %>% filter(merge_year==2012, adj_surg_rate<160)
surg_dis_2016 <- surg_dis %>% filter(merge_year==2016)

usplot_surg_2012<-plot_usmap(data=surg_dis_2012, values="adj_surg_rate", regions = "counties", exclude=c("HI","AK")) + 
  labs(title = "Adjusted Rate of Surgical Discharges per 100K Medicare Enrollees by US County (2012)") + 
  theme(panel.background = element_rect(color=NA, fill = "white"), 
        plot.title = element_text(hjust = 0.5),
        plot.subtitle=element_text(hjust=0.5)) + 
  scale_fill_gradientn(colors=rev(RColorBrewer::brewer.pal(n = 11, name = "RdBu")))

usplot_surg_2016<-plot_usmap(data=surg_dis_2016, values="adj_surg_rate", regions = "counties", exclude=c("HI","AK")) + 
  labs(title = "Adjusted Rate of Surgical Discharges per 100K Medicare Enrollees by US County (2016)") + 
  theme(panel.background = element_rect(color=NA, fill = "white"), 
        plot.title = element_text(hjust = 0.5),
        plot.subtitle=element_text(hjust=0.5)) + 
  scale_fill_gradientn(colors=rev(RColorBrewer::brewer.pal(n = 11, name = "RdBu")))


usplot_elect_2012<-plot_usmap(data=elect_2012,
                              values="r_pct",
                              regions = "counties",
                              exclude=c("HI","AK")) +
                   labs(title = "Republican Voting % by US County (2012)") +
                   theme(panel.background = element_rect(color=NA, fill = "white"),
                   plot.title = element_text(hjust = 0.5)) +
                   scale_fill_gradientn(colors=rev(RColorBrewer::brewer.pal(n = 11, name = "RdBu")),
                                        name="Reublican %")

usplot_elect_2016<-plot_usmap(data=elect_2016,
                              values="r_pct",
                              regions = "counties",
                              exclude=c("HI","AK")) +
                   labs(title = "Republican Voting % by US County (2016)") +
                   theme(panel.background = element_rect(color=NA, fill = "white"),
                   plot.title = element_text(hjust = 0.5)) +
                   scale_fill_gradientn(colors=rev(RColorBrewer::brewer.pal(n = 11, name = "RdBu")),
                                        name="Reublican %")

usplot_surg_2012

usplot_elect_2012

usplot_surg_2016

usplot_elect_2016

label(analytical_cohort$adj_surg_rate)    <- "Surgical Discharges per 1,000 Medicare Enrollees"
label(analytical_cohort$past_vote_share)  <- "% Republican Vote Share (Prior Election)"
label(analytical_cohort$merge_year)       <- "Election Year"
label(analytical_cohort$pct_gdp_chg)      <- "% GDP Change From Prior Year"
label(analytical_cohort$pct_fairpoor)     <- "% Fair/Poor Health"
label(analytical_cohort$pct_hsgrad)       <- "% High School Graduates"
label(analytical_cohort$pct_unemp)        <- "% Unemployed"
label(analytical_cohort$pct_nhblack)      <- "% Non-Hispanic Black"
label(analytical_cohort$pct_rural)        <- "% Rural"
label(analytical_cohort$pct_uninsured)    <- "% Uninsured"
label(analytical_cohort$tot_pop)          <- "Population"
label(analytical_cohort$med_income)       <- "Median Income"
label(analytical_cohort$PovertyAllAgesPct)<- "% Poverty"
label(analytical_cohort$r_pct)            <- "% Republican Vote Share"

ac2 <- analytical_cohort %>% dplyr::select(adj_surg_rate, r_pct, past_vote_share, pct_gdp_chg, pct_fairpoor, 
                                           pct_hsgrad, pct_unemp, pct_nhblack, pct_rural, pct_uninsured, tot_pop, 
                                           med_income, PovertyAllAgesPct, merge_year)

ac2 %>%
  tbl_summary(
    by = merge_year,
    statistic = list(all_continuous() ~ "{mean} ({sd})",
                     all_categorical() ~ "{n} / {N} ({p}%)"),
    digits = all_continuous() ~ 1,
    missing="no"
  ) %>%
  add_overall() %>%
  modify_spanning_header((c("stat_1", "stat_2") ~ "**Year**")) %>% 
  as_gt() %>% 
  gt::tab_header("Table 1. County-Level Characteristics by Year") %>% 
  opt_align_table_header(align = "left")
Table 1. County-Level Characteristics by Year
Characteristic Overall, N = 6,1511 Year
2012, N = 3,0851 2016, N = 3,0661
Surgical Discharges per 1,000 Medicare Enrollees 82.0 (13.2) 88.5 (12.1) 75.4 (10.6)
% Republican Vote Share 63.5 (15.8) 60.6 (14.9) 66.5 (16.0)
% Republican Vote Share (Prior Election) 59.1 (14.5) 57.6 (13.9) 60.6 (14.9)
% GDP Change From Prior Year 0.8 (9.8) 1.3 (11.7) 0.4 (7.4)
% Fair/Poor Health 16.9 (5.3) 16.8 (5.8) 16.9 (4.9)
% High School Graduates 83.3 (9.4) 82.5 (9.9) 84.2 (8.9)
% Unemployed 7.7 (3.1) 9.2 (3.1) 6.3 (2.2)
% Non-Hispanic Black 9.2 (14.3) 9.3 (14.4) 9.0 (14.3)
% Rural 58.7 (31.1) 59.5 (30.8) 57.9 (31.3)
% Uninsured 17.8 (5.6) 18.3 (5.7) 17.3 (5.3)
Population 101,575.2 (323,496.9) 99,352.4 (317,103.1) 103,811.7 (329,841.8)
Median Income 45,028.7 (11,548.2) 43,082.8 (10,701.1) 46,986.7 (12,030.1)
% Poverty 15.2 (6.0) 15.2 (6.0) 15.1 (6.0)

1 Statistics presented: Mean (SD)

models<-list()
models[['Univariate']] <-lm(data=analytical_cohort, r_pct ~ adj_surg_rate)
models[['Multivariable']] <-lm(data=analytical_cohort, r_pct ~ adj_surg_rate + past_vote_share + pct_gdp_chg + pct_fairpoor + pct_hsgrad + pct_unemp + pct_nhblack + pct_rural + pct_uninsured + log_pop + log_med_inc + PovertyAllAgesPct + merge_year)
models[['Multivariable w/FIPS FE']]<-lm(data=analytical_cohort, r_pct ~ adj_surg_rate + past_vote_share + pct_gdp_chg + pct_fairpoor + pct_hsgrad + pct_unemp + pct_nhblack + pct_rural 
              + pct_uninsured + log_pop + log_med_inc + PovertyAllAgesPct + factor(merge_year) + factor(fips))


modelsummary(models,
             statistic = 'p.value',
             coef_omit = 'fips',
             coef_map=c('adj_surg_rate'='Adj.Rate of Surgical Discharges per 100K MC Enrollees',
                        'past_vote_share'="Previous Election Republican Vote %",
                        'pct_gdp_chg'="1-year GDP Increase",
                        'pct_fairpoor'="% in Fair/Poor Health",
                        'pct_hsgrad'="% H.S. Graduate",
                        'pct_unemp'="% Unemployed",
                        'pct_nhblack'="% Non-Hispanic African-American",
                        'pct_rural'='% Rural',
                        'pct_uninsured'="% Uninsured",
                        'log_pop'="Log(Population)", 
                        'log_med_inc'="Log(Median Income)",
                        'PovertyAllAgesPct'="Poverty Rate, All Ages",
                        'merge_year'="Election Year"), title="Linear Regression Results")
Linear Regression Results
Univariate Multivariable Multivariable w/FIPS FE
Adj.Rate of Surgical Discharges per 100K MC Enrollees 0.167 0.047 -0.000
(0.000) (0.000) (0.968)
Previous Election Republican Vote % 0.963 0.273
(0.000) (0.000)
1-year GDP Increase -0.002 -0.023
(0.757) (0.021)
% in Fair/Poor Health 0.008 -0.258
(0.559) (0.000)
% H.S. Graduate 0.032 0.026
(0.000) (0.040)
% Unemployed 0.085 -0.171
(0.000) (0.003)
% Non-Hispanic African-American -0.109 0.381
(0.000) (0.000)
% Rural 0.021 0.089
(0.000) (0.000)
% Uninsured -0.212 -0.021
(0.000) (0.736)
Log(Population) -0.532 -25.556
(0.000) (0.000)
Log(Median Income) -7.381 9.754
(0.000) (0.000)
Poverty Rate, All Ages -0.112 17.863
(0.000) (0.000)
Num.Obs. 6151 5230 5230
R2 0.019 0.951 0.978
R2 Adj. 0.019 0.951 0.951
AIC 51273.6 27661.8 29238.6
BIC 51293.7 27760.2 48328.0
Log.Lik. -25633.779 -13815.884 -11710.312
F 121.238 7832.373 35.871

References

1. Surgeries in Hospital-Based Ambulatory Surgery and Hospital Inpatient Settings, 2014 #223. https://hcup-us.ahrq.gov/reports/statbriefs/sb223-Ambulatory-Inpatient-Surgeries-2014.jsp.

2. Weiss, A. J. Characteristics of Operating Room Procedures in U.S. Hospitals, 2011. 12.

3. Cohen, M. E., Liu, Y., Ko, C. Y. & Hall, B. L. Improved Surgical Outcomes for ACS NSQIP Hospitals Over Time: Evaluation of Hospital Cohorts With up to 8 Years of Participation. Annals of Surgery 263, 267–273 (2016).

4. Smith, R. Dartmouth Atlas of Health Care. BMJ 342, d1756–d1756 (2011).

5. Keele, L., Sharoky, C. E., Sellers, M. M., Wirtalla, C. J. & Kelz, R. R. An Instrumental Variables Design for the Effect of Emergency General Surgery. Epidemiologic Methods 7, (2018).

6. Birkmeyer, J. D. et al. Understanding of regional variation in the use of surgery. The Lancet 382, 1121–1129 (2013).

7. Hersh, E. D. & Goldenberg, M. N. Democratic and Republican physicians provide different care on politicized health issues. Proc Natl Acad Sci USA 113, 11811–11816 (2016).

8. Sanger-Katz, M. Your Surgeon Is Probably a Republican, Your Psychiatrist Probably a Democrat (Published 2016). The New York Times (2016).

9. Johnson, D. D. P., McDermott, R., Cowden, J. & Tingley, D. Dead certain: confidence and conservatism predict aggression in simulated international crisis decision-making. Human Nature (Hawthorne, N.Y.) 23, 98–126 (2012).